import java.util.HashSet;
import java.util.Set;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 17655
 * Date: 2024-12-08
 * Time: 0:28
 */
public class test2 {
    /*
    LeetCode 128 最长连续序列
    给定一个未排序的整数数组 nums ，找出数字连续的最长序列（不要求序列元素在原数组中连续）的长度
     */

    // 用哈希表进行判断从哪一个数字开始
    public int longestConsecutive(int[] nums) {
        // 1.把所有数放入哈希表中
        Set<Integer> set = new HashSet<Integer>();
        for(int num:nums){
            set.add(num);
        }
        // 用于结果返回
        int longest = 0;
        // 2.进行计算
        for(int num:set){
            if(!set.contains(num-1)){
                int currentNum = num;
                int currentLength = 1;
                while(set.contains(currentNum+1)){
                    currentNum+=1;
                    currentLength+=1;
                }
                longest = Math.max(longest,currentLength);
            }
        }
        return longest;
    }
}
